package com.exam.api.modules.system.service;

import cn.dev33.satoken.stp.SaTokenInfo;
import com.exam.api.common.enums.LoginDevice;
import com.exam.api.modules.system.dto.LoginDTO;
import com.exam.api.modules.system.dto.LoginPasswordDTO;
import com.exam.api.modules.system.dto.LoginSmsDTO;
import jakarta.servlet.http.HttpServletRequest;

/**
 * @author iaa
 * @Description
 * @Date 2025/6/17 10:46
 */
public interface LoginService {


    /**
     * 登录
     *
     * @param dto     登录信息
     * @param request 请求
     * @return 登录结果
     */
    SaTokenInfo login(LoginDevice device, LoginPasswordDTO dto, HttpServletRequest request);
    SaTokenInfo login(LoginDevice device, LoginDTO dto, HttpServletRequest request);

    public void sendSmsCode(String tel, String type);

    /**
     * 登录手机号
     * @param dto
     * @return
     */
    SaTokenInfo loginAppPhone(LoginSmsDTO dto);

    /**
     * 注销
     *
     * @return 登出结果
     */
    Object logoutManager();
}
